Skip to content

docs(session): анализ навигации и find-references для членов через вывод типов#4197

Open
nixel2007 wants to merge 3 commits into
developfrom
claude/restore-session-context-68k7x2
Open

docs(session): анализ навигации и find-references для членов через вывод типов#4197
nixel2007 wants to merge 3 commits into
developfrom
claude/restore-session-context-68k7x2

Conversation

@nixel2007

@nixel2007 nixel2007 commented Jun 24, 2026

Copy link
Copy Markdown
Member

Заметки по диагностике F12/hover на ИмеетТип (asserts) и дизайну индексации
type-inferred member-обращений для find-references/rename.

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01KZQafLUdXJF7ZDqphzs6tX

…вод типов

Заметки по диагностике F12/hover на ИмеетТип (asserts) и дизайну индексации
type-inferred member-обращений для find-references/rename.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KZQafLUdXJF7ZDqphzs6tX
@coderabbitai

coderabbitai Bot commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 2f144c1d-9bab-4e5e-b510-6d4ee260efc5

📥 Commits

Reviewing files that changed from the base of the PR and between bf7b997 and 667d7c3.

📒 Files selected for processing (1)
  • .session-notes/goto-definition-and-find-references-for-type-inferred-members.md

Walkthrough

Adds a new session-notes document describing the F12 failure for type-inferred members, a minimal definition fix, an eager type-coordinate indexing design for references and rename, invalidation scenarios, a draft feature plan, and a file-role map.

Changes

Design notes: type-inferred member navigation

Layer / File(s) Summary
Problem diagnosis and minimal F12 fix
.session-notes/goto-definition-and-find-references-for-type-inferred-members.md
Introduces the note, explains why hover works while F12 fails, and proposes creating LocationLink for PlatformMemberSymbol when descriptor.getSourceSymbol() is a SourceDefinedSymbol.
Find-references design: eager type-coordinate indexing
.session-notes/goto-definition-and-find-references-for-type-inferred-members.md
Describes the fluent call-site target behavior, the current ReferenceIndex.getReferencesTo lookup, the rejected query-time inference approach, and the (receiver TypeRef, member name) coordinate model for eager indexing.
Invalidation strategy, feature plan, and file map
.session-notes/goto-definition-and-find-references-for-type-inferred-members.md
Lists the stale-data scenarios, narrows the invalidation problem to type changes, summarizes the rename and find-references tolerances, lays out the draft feature plan, records the open scope question, and adds the involved-files table.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Poem

🐇 Я в норке нашёл аккуратный след,
F12 теперь знает верный ответ.
По типам тропинки — и ссылки, и rename,
Прыжок по идеям — и всё стало plain.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed Заголовок точно отражает документационные заметки о навигации и find-references для членов через вывод типов.
Description check ✅ Passed Описание напрямую связано с изменениями: диагностика F12/hover и дизайн индексации type-inferred обращений.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/restore-session-context-68k7x2

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
@.session-notes/goto-definition-and-find-references-for-type-inferred-members.md:
- Around line 85-87: The fenced code block in the markdown note is missing a
language tag and triggers markdownlint MD040. Update the unlabeled fence in the
referenced note to include a language label such as text, keeping the existing
content and formatting otherwise unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 85ec4003-9632-451a-bc1b-abceceb0c791

📥 Commits

Reviewing files that changed from the base of the PR and between 750169d and d78889c.

📒 Files selected for processing (1)
  • .session-notes/goto-definition-and-find-references-for-type-inferred-members.md

Comment on lines +85 to +87
```
resolve символ под курсором → referenceIndex.getReferencesTo(symbol)
```

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Add a language tag to the fenced block to satisfy markdownlint.

Line 85 uses an unlabeled fenced block; add a language (for example, text) to resolve MD040.

Suggested patch
-```
+```text
 resolve символ под курсором → referenceIndex.getReferencesTo(symbol)
</details>

<!-- suggestion_start -->

<details>
<summary>📝 Committable suggestion</summary>

> ‼️ **IMPORTANT**
> Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

```suggestion

🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 85-85: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
@.session-notes/goto-definition-and-find-references-for-type-inferred-members.md
around lines 85 - 87, The fenced code block in the markdown note is missing a
language tag and triggers markdownlint MD040. Update the unlabeled fence in the
referenced note to include a language label such as text, keeping the existing
content and formatting otherwise unchanged.

Source: Linters/SAST tools

@github-actions

github-actions Bot commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Test Results

 3 528 files  ±0   3 528 suites  ±0   1h 21m 53s ⏱️ - 14m 59s
 3 462 tests ±0   3 444 ✅ ±0   18 💤 ±0  0 ❌ ±0 
20 772 runs  ±0  20 660 ✅ ±0  112 💤 ±0  0 ❌ ±0 

Results for commit 667d7c3. ± Comparison against base commit 750169d.

♻️ This comment has been updated with latest results.

nixel2007 and others added 2 commits June 24, 2026 10:39
…бственного кода

Уточнение случая №3: типы-определения это в первую очередь код проекта (правится
постоянно), не редко меняющиеся библиотеки. Разложил правки B на тело/переименование/
смену сурфейса — инвалидирует только последнее; dependency-инвалидатор узкий и
хирургический. rename требует инвалидации обязательно, find-references допускает
best-effort.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KZQafLUdXJF7ZDqphzs6tX
@sonarqubecloud

Copy link
Copy Markdown

pull Bot pushed a commit to bia-technologies/bsl-language-server that referenced this pull request Jun 25, 2026
…вол дескриптора

F12 на члене платформенного/конфигурационного типа, разрешённом через
TypeService.memberAt в синтетический PlatformMemberSymbol (например, метод
OneScript-класса в fluent-цепочке asserts: Ожидаем.Что(X).ИмеетТип(...)),
не срабатывал: DefinitionProvider отсекал такие ссылки фильтром
isSourceDefinedSymbolReference, хотя дескриптор уже несёт source-defined
символ-источник (OScriptModuleMembersProvider.withSourceSymbol).

Добавлен маленький Reference->Reference map (unwrapPlatformMemberSource),
разворачивающий ссылку на источник перед фильтром; основной пайплайн
перехода не меняется. Платформенные члены без источника остаются hover-only.

Обсуждение и дизайн: 1c-syntax#4197

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KZQafLUdXJF7ZDqphzs6tX
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants